package com.example.service.aboutUser;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.vo.request.*;
import com.example.pojo.aboutUser.User;
import com.example.vo.Result;

import javax.servlet.http.HttpSession;

public interface UserService extends IService<User> {

    Result login(LoginForm loginForm, HttpSession session);

    Result userInfo();

    Result register(RegisterForm registerForm);

    Result getAuthCode(String email);

    Result resetPassword(ForgetPasswordForm forgetPasswordForm);

    Result listUsers(Integer currentPage, Integer pageSize);


    Result updateUserRoleAndPermissions(UpdateUserRoleAndPermissionForm updateUserRoleAndPermissionForm);

    Result updateUserInfo(UpdateUserInfoForm updateUserInfoForm,HttpSession session);

    Result checkPassword(PasswordOperationForm passwordOperationForm);

    Result changePassword(PasswordOperationForm changePasswordForm);

    Result forbiddenAccountByUserId(Integer userId);

    Result enableAccountByUserId(Integer userId);

    Result listUsersByConditions(SearchUserConditions searchUserConditions);
}
